$(document).ready(function () {
	var tree = $("#tree").jstree({
        "core": {
            "animation": true,
            "multiple": false,
            "check_callback": true,
            "themes": { "stripes": false },
            'data': {
                'url':"/role/getRoleList",
                "dataType": "json",
                'data': function (node) {
                    return { 'id': node.id };
                }
            }
        }

    }).on("changed.jstree", function (event, data) {

    	resetFunc();
    	
    	resetEdit();
    	
        if (data.selected.length > 0) {

            var sel = data.instance.get_node(data.selected[0]).original.attr;

            renderTab(data.selected[0]);
            
            infoShow(data.selected[0]);
          
        }
    }).jstree();
    
    $('#show-root').on('click',function(data){
    	
    	resetEdit();
    	
    	$('#function-area').hide();

    	$('#t-root').show();
    	    	
    	
    })

    
    $('#show-child').on('click',function(data){
    	
    	var id=$('#role-id').val();
    	
//    	if(myNotyNull('先中角色类别',id)==false)
//    	{
//    		return;
//    	}
    	
    	if($('#tree').jstree('get_node',id).parent!='#')
    	{
    		myNoty('不能添加二级角色','failed');
    		
    		return;
    	}
    	
    	resetEdit();
    	
    	$('#function-area').hide();

    	$('#t-child').show();
    	
    })
    
    
    
    $('.add-cancel').on('click',function(data){
    	
    	resetFunc();
    	
    })
    
    $('#add-child').on('click',function(data){
    	
    	createRole(
    			$.trim($('#code').val()),
    			$.trim($('#name').val()),
    			$.trim($('#comment').val()),
    			$('#activate').prop('checked'),
    			$('#role-parent-id').val()
    	);
    	
    })
    
    $('#add-root').on('click',function(data){
    	
    	createRole(
    			$.trim($('#code').val()),
    			$.trim($('#name').val()),
    			$.trim($('#comment').val()),
    			$('#activate').prop('checked'),
    			null
    	);
    	
    })
      
    
    $('#update').on('click',function(){
    	

    	updateRole(
    			$.trim($('#role-id').val()),
    			$.trim($('#code').val()),
    			$.trim($('#name').val()),
    			$.trim($('#comment').val()),
    			$('#activate').prop('checked')    			
    	
    	);
    	
    })
    
    
    $('#delete').on('click',function(){
    	
	    if(myNotyNull('请选中角色',$('#role-id').val())==false)
		{
	    	return;
		}
	    
	    if ($("#tree").jstree().is_parent($('#role-id').val()))
	    {
	    	myNoty('含有子角色，不能删除','failed');
	    
	    	return;
	    }
	        
	    var c=confirm("["+$('#name').val()+"]将被删除，确定吗？")
	    
	    if(c)
	    {
	    	deleteRole($('#role-id').val());
	    }      	
    	
    })
           
    
    
})

//重置编辑区，及清空绑定信息
function resetEdit(){
	
	$('#role-parent-id').val($('#role-id').val());
	
	$('#role-id').val('');	
	$('#code').val('');	
	$('#name').val('');	
	$('#comment').val('');	
	$('#activate').prop('checked',true);
	
	$('#func-ids').val('');
	$('#community-ids').val('');
	$('#channel-ids').val('');		

	$('#user-ul').empty();
	
	$('#func-tree').jstree('uncheck_all');
		
	$('#code').focus();
	
}

//重置功能区
function resetFunc(){	
	
	$('#function-area').show();

	$('#t-root').hide();
	
	$('#t-child').hide();
	
}


function infoShow(id)
{
	$.myAjax('/role/getRoleInfo',
			{roleId:id},
			'post',
			function(data){
		
			if(data.status==10001)
			{
				
				$('#role-id').val(data.data.roleId);
			
				//$('#role-parent-id').val(data.data.parentRoleId);
				$('#code').val(data.data.roleCode);
				$("#code").attr("disabled","disabled");
				$('#name').val(data.data.roleName);
				$('#comment').val(data.data.roleDescribe);
//				$('#activate').prop('checked',data.data.isActivated);
				
				//加载绑定用户
				for(var i=0;i<data.data.users.length;i++)
				{
					
					var node={};
					
					node['id']=data.data.users[i].userId;
					
					node['text']=data.data.users[i].userName;
					
					var li='<li class="list-group-item" data="'+data.data.users[i].userId+'">'+data.data.users[i].userName+
					
					'('+data.data.users[i].phoneNum+')'+
					
					'<span class="badge"><a href="javascript:void(0)" onclick=javascript:unbindUser("'+data.data.users[i].userId+'")><span class="glyphicon glyphicon-remove" style="color:white;" aria-hidden="true"></span></a></span></li>';
					
					//'<span class="pull-right"><input class="btn btn-warning" type="button" value="解绑" onclick=javascript:unbindUser("'+data.data.users[i].id+'")></span></li>';
					
					$('#user-ul').append(li);
					
				}
				
				//绑定功能
				/*var ids=[];
				for(var i=0;i<data.data.funcs.length;i++)
				{
					var id=data.data.funcs[i].id
					ids.push(id);
				}
				if(ids.length>0)
				{
					$('#func-ids').val(ids.join(','));
				}
				$('#func-tree').jstree('check_node',ids);*/
				

				
			}
			
		},
	    function () {
	
			showLoading('loadingRoleImg');
	
	    },
	    function () {
	    	
	    	hideLoading('loadingRoleImg');
	
	    },function(){
	    	window.location.reload();
	    }
	)
}


function createRole(code,name,comment,activate,pid)
{
//	if(myNotyNull('请输入编码',code)==false)
//	{
//		return;
//	}

	if(myNotyNull('请输入名称',name)==false)
	{
		return;
	}

	var activated=0;
	if(activate==true){
		activated=1;
	}
	
	$.ajax({
		url:'/role/addRole',
		data:{
			roleCode:code,
			roleName:name,
//			parentRoleId:pid,
			roleDescribe:comment,
//			isActivated:activated
		},
		datatype : "json",
		type: 'POST',
        async: false,
        success: function (data) {
        	
        	if(data.status==10001)
			{
				resetFunc();
				
				$('#tree').jstree('refresh');
			}
        	
        }
	}),
	function () {

		showLoading('loadingRoleImg');

	},
	function () {
			
		hideLoading('loadingRoleImg');
	
	},function(){
	    window.location.reload();
	}
}




function updateRole(id,code,name,comment,activate)
{
//	if(myNotyNull('请输入编码',code)==false)
//	{
//		return;
//	}

	if(myNotyNull('请输入名称',name)==false)
	{
		return;
	}

	var activated=0;
	if(activate==true){
		activated=1;
	}
	
	$.myAjax('/role/updateRole',
		{
			id:id,
			roleCode:code,
			roleName:name,
			roleDescribe:comment,
//			isActivated:activated
		},
		'post',
		function(data){
	
	
			if(data.status==10001)
			{
				//resetFunc();
				//reload tree
				$('#tree').jstree('refresh');
			}
			
		},
		
		function () {
		
			showLoading('loadingRoleImg');
		
		},
		function () {
			hideLoading('loadingRoleImg');
		
		},function(){
	    	window.location.reload();
	    }

	)

}


function deleteRole(id)
{
	
	$.myAjax('/role/deleteRole',
			{id:id},
			'post',
			function(data){		
		
				if(data.status==10001)
				{
					//reload tree
					$('#tree').jstree('refresh');
				}
				
			},
			
			function () {			
				showLoading('loadingRoleImg');			
			},
			function () {
				hideLoading('loadingRoleImg');			
			},function(){
		    	window.location.reload();
		    }		
	
	)

}

//render类别与角色界面
function renderTab(id)
{
	if($('#tree').jstree().is_parent(id))
	{
		$('#tablist li').hide();
		
		$('#tablist li').eq(0).show();
		
		$('#tablist [role="presentation"]').removeClass('active');
		
		$('#tablist [role="presentation"]').eq(0).addClass('active');
				
		
		$('#tabcontent [role="tabpanel"]').removeClass('active');
		
		$('#tabcontent [role="tabpanel"]').eq(0).addClass('active');
		
		$('#role-tab-title').html('角色类别信息');
	}
	else		
	{
		$('#tablist li').show();
		
		$('#role-tab-title').html('角色信息');
	}
	
}